Introduction
With the development of the “connected home” and “liquid bandwidth” paradigms, there is a distinct need for simple methods to manage quality of service (QoS) across a plurality of applications at the end user level (i.e. within the confines of an individual subscriber's environment). These methods and their implementation generally need to satisfy two fundamental properties:                They should ideally be capable of dealing with the fact that different network applications have different QoS requirements and that QoS cannot always be measured using simple technical criteria (e.g. packet loss, jitter . . . )        They should ideally be simple and robust enough to be able to run autonomously on “home hub” type network devices, for example, and possibly resolve unforeseen multi-application conflicts in a satisfactory manner.        
The traditional approach to avoiding such conflicts, though usually not used in a micro-management context, is admission control. This simply means that a new process will only be allowed, or be allocated bandwidth, if there is enough bandwidth to achieve the desired QoS for the new application without compromising that of on-going processes (a very similar logic to “first-come-first-served”).
It has been argued in the past that more subtle criteria such as the individual history, in terms of bandwidth consumption, of a process's owner should be taken into account to avoid unfair “hogging” of network resources by a minority of users. Other solutions include congestion-based charging, which basically involves tracking the adverse impact that users/applications have on bandwidth availability then discouraging disruptive utilisation of the resource by raising its price accordingly.
Crude Bandwidth Allocation Methods:
Before going on to describe embodiments of the present invention in detail, we present two very crude bandwidth allocation methods that could be used as an alternative to the solution proposed, in order to demonstrate their shortcomings. These two methods will be referred to respectively as:                Equal share; and        Proportional share        
These methods are known to be unsatisfactory, and “equal share” in particular is unlikely ever to be envisaged as a viable option. The “proportional share” allocation logic is not such a remote possibility, as it is in fact close to the situation that would present itself in the absence of any form of QoS management. In any case, it will be understood that these two methods are presented primarily for illustration and comparison purposes.
As its name implies, the equal share method simply means that the amount of bandwidth reserved for each application is equally divided between all concurrent processes, independent of their type. So, if there are n processes:
                              b          1                =                              b            2                    =                      …            =                                          b                n                            =                              B                n                                                                        (        1        )            where bi is the share of the bandwidth allocated to Process-i and B is the total available bandwidth. This is of course extremely wasteful and inefficient if the bandwidth requirements for these processes are not identical (e.g. Process-1 could be a streaming video application and Process-2 a web browser, in which case it would be absurd to allocate the same share of the resource to each of them).
The proportional share method means that all processes receive the same fraction of their respective target bandwidth, while respecting the constraint that total consumption across all concurrent processes cannot be larger than the available bandwidth. So in effect:
                                          b            i                    =                      γ            ⁢                                                  ⁢                          t              i                                      ⁢                                  ⁢                                            ∑                              i                =                1                            n                        ⁢                          b              i                                ≤          B                                    (        2        )            where γ is the fraction (between 0 and 1) and ti is the target bandwidth of process i (as defined by the type of application it belongs to). This second method is obviously not agnostic to the unique requirements of each application type (unlike the equal share option) but, critically, it does not take into account the quantitative impact on QoS of a given reduction of the allocated bandwidth compared to the target.
The above two methods could each be said to be aiming for a “fair” allocation of resources, but simply from the fact that they lead to different allocations and different results while both apparently aiming for “fairness”, it will be understood that “fairness” is by no means an objective criteria, and the mere fact that a particular method is aiming for an allocation that may be described as “fair” according to some subjectively-chosen criteria is no guarantee that it will lead to results that will be desirable in respect of all, some or even any of a plurality of network applications, or to one or more users of such a plurality of network applications.
Referring briefly to prior patent documents, U.S. Pat. No. 6,404,738 (“Reininger et al”) relates to a dynamic network bandwidth allocation method for multimedia applications with soft quality-of-service (“soft-QoS”) requirements. Soft-QoS is defined by a satisfaction index (a number that rates users' perceptual quality) and a softness profile (a function that captures the robustness of multimedia applications to network congestion). A soft-QoS controller uses the softness profiles to compute a bandwidth allocation that maximizes the minimum satisfaction index of active connections.
US2003/0120780 (“Zhu et al”) relates to network resource assignment systems and methods. One such method involves establishing a resource model, acquiring an application model, and utilising a mapping process to map said application model onto said resource model. The resources are assigned to optimise the assignment of resources with respect to application requirements and desired objectives, such as minimisation of the average communication delay inside a service core.